Introducción a PyTorch: ¿Por qué los tensores son importantes?
PyTorch es un marco de código abierto altamente flexible y dinámico, muy valorado para la investigación en aprendizaje profundo y el desarrollo rápido de prototipos. En su núcleo, el tensor es la estructura de datos indispensable. Es un arreglo multidimensional diseñado para manejar eficientemente las operaciones numéricas necesarias para modelos de aprendizaje profundo, con soporte automático para aceleración en aceleración en GPU automatically.
1. Comprender la estructura del tensor
Cada entrada, salida y parámetro del modelo en PyTorch está encapsulado en un tensor. Sirven para el mismo propósito que los arreglos de NumPy, pero están optimizados para procesamiento en hardware especializado como GPUs, lo que los hace mucho más eficientes para las operaciones de álgebra lineal a gran escala requeridas por las redes neuronales.
Las propiedades clave definen el tensor:
- Forma: Define las dimensiones de los datos, expresadas como una tupla (por ejemplo, $4 \times 32 \times 32$ para un lote de imágenes).
- Tipo de dato: Indica el tipo numérico de los elementos almacenados (por ejemplo,
torch.float32para los pesos del modelo,torch.int64para indexación). - Dispositivo: Indica la ubicación física del hardware: típicamente
'cpu'o'cuda'(GPU de NVIDIA).
requires_grad=True esté activada, permitiendo el cálculo sencillo de gradientes durante la propagación hacia atrás.
Ejecuta el código para inspeccionar tensores activos
Las dimensiones internas deben coincidir, así que $F$ debe ser $(1, 10)$. Entonces $(1, 10) @ (10, 5) \rightarrow (1, 5)$.
Código:
F_new = F.unsqueeze(0) o F_new = F.view(1, -1)La operación es una multiplicación matricial directa.
Código:
output = F_new @ W o output = torch.matmul(F_new, W)Usa el método
view o reshape métodos. La manera más rápida de aplanar es usar frecuentemente -1 para una dimensión.Código:
F_flat = F.view(-1) o F_flat = F.reshape(50)